package hot100;

import java.util.HashSet;
import java.util.Set;

public class longestConsecutive2 {
    public int longestConsecutive(int[] nums) {
        // 将nums存入Set
        Set<Integer> set = new HashSet<>();
        for (int x : nums) {
            set.add(x);
        }

        //记录最大值
        int max = 0;

        for (int x : set) {
            // 判断nums[i]-1是否存在，nums[i]从set中获取避免大量重复判断，不存在则nums[i]为一序列的起始值
            if (!set.contains(x - 1)) {
                int cur = x;
                int len = 1;
                // 开始获取序列长度
                while (set.contains(cur + 1)) {
                    cur+=1;
                    len++;
                }
                // 更新max
                if (max < len) {
                    max = len;
                }
            }
        }
        return max;
    }
}
